/*
  凯撒密码
  题目描述
    据古罗马历史学家盖乌斯·苏维托尼乌斯·特兰克维鲁斯（GaiusSuetoAniusTranquillus）的记载，
    凯撒在一些重要书信中使用"凯撒密码"进行加密，方式是规定一个正整数 k，
    把所有明文中的字母用其之后的第 k 个字母代替，如果超出字母表，则转回第一个字母。

    方便起见，我们以英文字母为例，
    如果规定 k = 4，则
      字母'a'用'e'代替（a->b->c->d->e）,
      字母'x'用字母'b'代替（x->y->z->a->b）,
    因此单词"axe"加密后为"ebi"，如果密文是"eaec"，则可以推出明文是"away"。

    假如你是凯撒，你需要将一封信加密后寄往元老院，同时将一封朋友寄来的加密后的信解密后阅读。
    现在你知道两封信都是由 n 个小写英文字母组成的，你加密、解密后的信也应由小写字母组成，
    并且你还依稀记得自己加密用的 k。
    现在编写程序来展示一下你的加密、解密结果吧。
  输入描述
    输入共 3 行：
      第 1 行，2 个用空格隔开的正整数 n，k，分别表示每封信的长度和加密用的偏移量；
      第 2 行，n 个小写英文字母，为需要加密的信；
      第 3 行，n 个小写英文字母，为需要解密的信；
  输出描述
    输出共 2 行：
      第 1 行，n 个小写英文字母，为需要加密的信的加密结果。
      第 2 行，n 个小写英文字母，为需要解密的信的解密结果。
  样例1
    输入
      12 3
      venividivici
      sdbbrxughewv
    输出
      yhqlylglylfl
      payyourdebts
  提示
   【数据说明】
      1 <= n <= 1000;
      1 <= k <= 2 * 10^9
*/

#include <iostream>

using namespace std;

int main() {
    int n, k;
    string s, t;

    cin >> n >> k >> s >> t;
    k %= 26;

    for (int i = 0; i < s.size(); i++) {
        if (s[i] + k > 'z') {
            s[i] = s[i] + k - 'z' + 'a' - 1;
        } else {
            s[i] += k;
        }
    }

    for (int i = 0; i < t.size(); i++) {
        if (t[i] - k < 'a') {
            t[i] = 'z' - ('a' - (t[i] - k)) + 1;
        } else {
            t[i] -= k;
        }
    }

    cout << s << endl;
    cout << t << endl;

    return 0;
}